]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
keyboard: Avoid blank space in OSK panel on portrait layouts
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 21 Jan 2020 16:01:56 +0000 (17:01 +0100)
committerFlorian Müllner <florian.muellner@gmail.com>
Tue, 21 Jan 2020 16:58:17 +0000 (16:58 +0000)
We try to make the OSK 1/3rd as big as the monitor. On landscape
layouts we usually get away with it as there's plenty of horizontal
space to enlarge the OSK while keeping the OSK aspect ratio.

In portrait layout, the horizontal space is a lot more scarce so
it means we'll still have plenty of space after making the OSK as
wide as it can possibly be, which will look as odd blank space in
the OSK panel.

In order to fix this, let the OSK panel height be less than 1/3rd
the monitor size if we are dealing with portrait layouts.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/2132
js/ui/keyboard.js

index 3a32962007e5a42b70c2e00149c0ad949caf7acc..0ff8d9a3acb1d456ac75a1a51d5c2c776f21ab29 100644 (file)
@@ -1588,7 +1588,17 @@ class Keyboard extends St.BoxLayout {
 
         let maxHeight = monitor.height / 3;
         this.width = monitor.width;
-        this.height = maxHeight;
+
+        if (monitor.width > monitor.height) {
+            this.height = maxHeight;
+        } else {
+            /* In portrait mode, lack of horizontal space means we won't be
+             * able to make the OSK that big while keeping size ratio, so
+             * we allow the OSK being smaller than 1/3rd of the monitor height
+             * there.
+             */
+            this.height = Math.min(maxHeight, this.get_preferred_height(monitor.width));
+        }
     }
 
     _onGroupChanged() {